Skip to content

feat: add client-id input and deprecate app-id#353

Merged
parkerbxyz merged 13 commits intomainfrom
copilot/v3-breaking-changes-tracking
Apr 11, 2026
Merged

feat: add client-id input and deprecate app-id#353
parkerbxyz merged 13 commits intomainfrom
copilot/v3-breaking-changes-tracking

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 18, 2026

GitHub now recommends using a GitHub App's Client ID for authentication. This PR adds a first-class client-id input, keeps app-id available for compatibility, and makes the migration path explicit in both runtime behavior and documentation.

Action inputs

  • Adds a new client-id input
  • Removes required from app-id
  • Marks app-id as deprecated in action.yml

Runtime behavior

  • Updates input parsing to prefer client-id
  • Falls back to app-id for existing workflows
  • Adds a clear error when neither client-id nor app-id is provided

Docs

  • Updates the README to recommend client-id
  • Switches usage examples to client-id
  • Documents that app-id is deprecated and that client-id takes precedence if both are set

Regression coverage

  • Adds a focused test proving a client-ID-shaped value works through the new client-id input
  • Adds coverage for the missing-ID validation path
  • Updates snapshots to lock in the new metadata and runtime behavior

Resulting usage

Users can migrate to the new input name directly:

- uses: actions/create-github-app-token@v3
  with:
    client-id: ${{ vars.GITHUB_APP_CLIENT_ID }}
    private-key: ${{ secrets.GITHUB_APP_PRIVATE_KEY }}

Copilot AI changed the title [WIP] [TRACK-001] Track v3 breaking changes Document client ID support on the existing app-id input Mar 18, 2026
Copilot AI requested a review from parkerbxyz March 18, 2026 20:15
@parkerbxyz
Copy link
Copy Markdown
Contributor

@copilot Let's also add a new client-id input, remove required from app-id, and mark app-id as deprecated.

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 18, 2026

@copilot Let's also add a new client-id input, remove required from app-id, and mark app-id as deprecated.

Implemented in 37f42c5: added client-id, made app-id non-required with a deprecation message, updated runtime handling/docs, and added focused tests for the new input path and missing-ID validation.

Copilot AI changed the title Document client ID support on the existing app-id input Add client-id input and deprecate app-id Mar 18, 2026
parkerbxyz and others added 2 commits March 19, 2026 23:05
Override console.error to log only the error message (not the full
stack trace) in main-missing-client-and-app-id.test.js. The stack
trace contains environment-specific paths and ANSI codes that differ
between local and CI environments, causing snapshot mismatches.

Co-authored-by: Copilot <[email protected]>
@parkerbxyz parkerbxyz requested review from Copilot and removed request for parkerbxyz March 20, 2026 06:30
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the action to support GitHub App authentication via a new client-id input while keeping app-id for backwards compatibility (now deprecated), and makes the runtime + docs prefer client-id.

Changes:

  • Add client-id input, deprecate app-id, and update action metadata accordingly.
  • Update runtime input parsing to prefer client-id, fallback to app-id, and error when neither is set.
  • Update README and add/adjust tests + snapshots to cover the new input and missing-ID validation.

Reviewed changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/main-missing-client-and-app-id.test.js Adds coverage for the new “neither ID provided” failure path and snapshots its output.
tests/main-client-id.test.js Adds a regression test ensuring a client-ID-shaped value works via client-id.
tests/index.js.snapshot Updates snapshots to capture new stdout/stderr behavior and deprecated-input output.
tests/README.md Updates test-writing guidance to point to the new missing-ID test as the “expected error” template.
main.js Prefers client-id over app-id and adds explicit validation when neither is provided.
lib/main.js Renames the first parameter to clientId and wires it into auth creation.
dist/main.cjs Rebuild output reflecting the new input parsing and renamed parameter.
action.yml Adds client-id, makes app-id optional, and marks app-id deprecated via deprecationMessage.
README.md Updates docs and examples to recommend client-id, and documents precedence + deprecation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@parkerbxyz parkerbxyz marked this pull request as ready for review April 10, 2026 23:27
@parkerbxyz parkerbxyz requested a review from a team as a code owner April 10, 2026 23:27
@parkerbxyz parkerbxyz requested a review from Copilot April 10, 2026 23:30
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the action to support GitHub App Client ID as a first-class input (client-id), while keeping app-id as a deprecated fallback for backwards compatibility.

Changes:

  • Adds client-id to action.yml, marks app-id as optional + deprecated, and updates runtime input parsing to prefer client-id.
  • Updates docs and usage examples to recommend client-id and describe precedence/validation behavior.
  • Adds regression tests for the new input and the “missing both IDs” error path, updating snapshots accordingly.
Show a summary per file
File Description
action.yml Adds client-id, deprecates and un-requires app-id.
main.js Prefers client-id, falls back to app-id, errors if neither provided.
lib/main.js Renames the identifier parameter and wires it into createAppAuth.
dist/main.cjs Bundled output reflecting the input and auth changes.
README.md Updates recommended configuration and examples to use client-id.
tests/main-client-id.test.js Adds coverage that client-id input flows through execution.
tests/main-missing-client-and-app-id.test.js Adds coverage for the missing-ID validation/error behavior.
tests/index.js.snapshot Updates snapshots for new tests and deprecation output.
tests/README.md Updates guidance to point to the new “expected error” test.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 8/9 changed files
  • Comments generated: 1

@parkerbxyz parkerbxyz changed the title Add client-id input and deprecate app-id feat: add client-id input and deprecate app-id Apr 10, 2026
Remove erroneous tests/ prefix from links since the file is already
inside the tests/ directory.

Co-authored-by: Copilot <[email protected]>
Replace INPUT_APP-ID with INPUT_CLIENT-ID in DEFAULT_ENV so all tests
exercise the recommended input. Remove the now-redundant
main-client-id.test.js and add main-app-id-fallback.test.js to
explicitly cover the legacy app-id path.

Co-authored-by: Copilot <[email protected]>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the action to support GitHub App authentication via a new client-id input while keeping the legacy app-id input for backwards compatibility, and makes the migration path explicit across runtime behavior, docs, and tests.

Changes:

  • Add client-id as a first-class action input; deprecate and make app-id optional in action.yml.
  • Update runtime input parsing to prefer client-id, fall back to app-id, and error when neither is set.
  • Refresh README examples/docs and add regression tests + snapshots for the new inputs and missing-ID validation.
Show a summary per file
File Description
action.yml Adds client-id input; deprecates and makes app-id optional.
main.js Prefers client-id over app-id and throws a clear error if neither is set.
lib/main.js Renames parameter and threads it into createAppAuth as the app identifier.
dist/main.cjs Bundled output updated to reflect the runtime changes.
README.md Updates guidance and examples to recommend client-id and document deprecation/precedence.
tests/main-client-id.test.js Adds a test covering the client-id input path.
tests/main-missing-client-and-app-id.test.js Adds coverage for the missing-ID validation path.
tests/index.js.snapshot Updates snapshots to include new test outputs and deprecated-input metadata.
tests/README.md Updates test authoring guidance and fixes relative links to examples.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 9/10 changed files
  • Comments generated: 2

parkerbxyz and others added 4 commits April 10, 2026 16:57
Remove redundant client-id callout from setup steps and trim
precedence detail from the input note.

Co-authored-by: Copilot <[email protected]>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds first-class support for a GitHub App client-id input (preferred by GitHub), deprecates app-id, and updates runtime validation, docs, and tests to make migration explicit while preserving backward compatibility.

Changes:

  • Introduces client-id input in action.yml, deprecates and un-requires app-id.
  • Updates runtime input parsing to prefer client-id, fall back to app-id, and error when neither is set.
  • Updates README + adds/updates tests and snapshots for the new input behavior.
Show a summary per file
File Description
tests/README.md Fixes/updates test authoring links and points expected-error tests to the new missing-ID scenario.
tests/main.js Updates default test env to use a client-ID-shaped value by default.
tests/main-missing-client-and-app-id.test.js Adds regression coverage for the new “neither input provided” validation path.
tests/main-client-id-precedence.test.js Adds a scenario intended to cover precedence when both inputs are set.
tests/main-app-id-fallback.test.js Adds a scenario verifying workflows can still use app-id when client-id is unset.
tests/index.js.snapshot Updates snapshots for deprecated input metadata and new runtime behaviors.
README.md Switches examples and setup guidance to client-id; documents deprecation.
main.js Prefers client-id, falls back to app-id, and throws a clear error when missing.
lib/main.js Renames parameter and wires the chosen identifier into createAppAuth.
dist/main.cjs Rebuild output reflecting the updated runtime behavior.
action.yml Adds client-id input and marks app-id as deprecated/not required.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 10/11 changed files
  • Comments generated: 2

@parkerbxyz parkerbxyz merged commit e6bd4e6 into main Apr 11, 2026
11 checks passed
@parkerbxyz parkerbxyz deleted the copilot/v3-breaking-changes-tracking branch April 11, 2026 00:36
create-app-token-action-releaser bot pushed a commit that referenced this pull request Apr 11, 2026
# [3.1.0](v3.0.0...v3.1.0) (2026-04-11)

### Bug Fixes

* **deps:** bump p-retry from 7.1.1 to 8.0.0 ([#357](#357)) ([3bbe07d](3bbe07d))

### Features

* add `client-id` input and deprecate `app-id` ([#353](#353)) ([e6bd4e6](e6bd4e6))
* update permission inputs ([#358](#358)) ([076e948](076e948))
@create-app-token-action-releaser
Copy link
Copy Markdown

🎉 This PR is included in version 3.1.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rename app-id input to client-id or app-client-id

4 participants